

#ifndef MESSAGE_H_
#define MESSAGE_H_

#define DUMMY	0
#define MAILER	9998
#define SHELL	9999

#define	MESSAGE_RT		1
#define	MESSAGE_SYSTEM	2
#define	MESSAGE_KILL	3
#define	MESSAGE_REVIVE	4

#include <string>
using namespace std;

class Message {
public:
	static const bool print_allowed = false;
	Message(int original_source_id, int source_id,int current_id, int target_id);
	Message();
    virtual ~Message();
    void setCurrent_target_id(int _current_target_id)
    {
        this->_current_target_id = _current_target_id;
    }

    int getCurrent_target_id() const
    {
        return _current_target_id;
    }

    virtual int getOriginal_source_id() const
    {
        return _original_source_id;
    }

    virtual void setOriginal_source_id(int _original_source_id)
    {
        this->_original_source_id = _original_source_id;
    }

    virtual void setSource_id(int _source_id)
    {
        this->_current_source_id = _source_id;
    }

    virtual void setTarget_id(int _target_id)
    {
        this->_target_id = _target_id;
    }

    virtual int getSource_id() const
    {
        return _current_source_id;
    }

    virtual int getTarget_id() const
    {
        return _target_id;
    }
    void print();
    void print_small();

private:
	int		_original_source_id;
	int 	_current_source_id;
	int 	_current_target_id;
	int 	_target_id;

};



#endif /* MESSAGE_H_ */
